home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Apple II Magazines (PO)
/
Nibble Volume 09, No. 06 (1988-06)(MicroSPARC)(Side A).zip
/
Nibble Volume 09, No. 06 (1988-06)(MicroSPARC)(Side A).po
/
SWAP.S
< prev
next >
Wrap
Text File
|
1996-12-24
|
5KB
|
217 lines
*****************************
* *
* SUPER.SWAP *
* BY TOM DORRIS *
* COPYRIGHT (C) 1987 *
* BY MICROSPARC, INC. *
* CONCORD, MA 01742 *
* *
* MERLIN-16 ASSEMBLER *
* *
*****************************
ORG $6000
HCOR = $E9
VCOR = $EB
POS = $26
HPOSN = $F411 CALCS HIRES BASE ADDRESS
SLOC = $FD SUPER HIRES POINTER
CLRBYT = $7
TRASH = $8
XC
XC
* SET UP VARIABLES
STZ SLOC
STZ HCOR
STZ HCOR+1
STZ VCOR
LDA #$20
STA SLOC+1
LDA #$E1
STA SLOC+2
* CLEAR SCREEN
MORE LDA #$FF
STA [SLOC]
INC SLOC
BNE MORE
INC SLOC+1
LDA SLOC+1
CMP #$9D
BNE MORE
* CLEAR SCBS
LDY #0
MJK LDA #0
STA [SLOC],Y
INY
BNE MJK
LDA #$20
STA SLOC+1
* MOVE IN COLOR PALETTE
LDX #10
MRCLR LDA CLRTBL,X
STAL $E19E00,X
DEX
BPL MRCLR
LDA #0
STAL $E19E1E
STAL $E19E1F
*===============================
* BEGIN CONVERSION
*===============================
AGAIN JSR HSCRN CHECK PIXEL
BNE CHKQ IS IT ON?
LDA #$0F NO, PLOT BLACK
JSR PLT
JMP AFTER
CHKQ LDA HCOR
ORA HCOR+1 IS IT LEFTMOST PIXEL?
BEQ SKTH YES, DON'T CHECK LEFT
JSR DCPOS
JSR HSCRN IS PIXEL TO LEFT ON?
BEQ SKPBK
JSR INPOS YES, PLOT AS WHITE
LDA #0
JSR PLT
JMP AFTER
SKPBK JSR INPOS MOVE BACK TO PIXEL
SKTH JSR INPOS MOVE RIGHT ONE PIXEL
JSR HSCRN
BEQ CLR IS PIXEL TO RIGHT ON?
JSR DCPOS YES, PLOT AS WHITE
LDA #0
JSR PLT
JMP AFTER
CLR STZ CLRBYT NO, FIGURE PIXEL COLOR
JSR DCPOS
JSR HSCRN
LDA (POS),Y IS HI-BIT SET?
AND #$80
BEQ NTHGH NO, GO ON
LDA #$02 YES, BEGIN WITH COLOR 2
STA CLRBYT
NTHGH LDA HCOR
AND #$01 ADD ONE TO COLOR NUMBER
ORA CLRBYT IF IN ODD COLUMN
INC
STA TRASH
JSR PLT PLOT ONE PIXEL
JSR INPOS
JSR CHECK
JSR INPOS
JSR HSCRN CHECK FOR ADJACENT COLOR
TAY
JSR DCPOS
TYA
BEQ SKPLT NONE, DON'T PLOT
LDA TRASH YES, MAKE COLOR APPEAR
JSR PLT SOLID
SKPLT JMP AFTER
PLT STA CLRBYT
ASL
ASL
ASL
ASL
ORA CLRBYT SET LEFT AND RIGHT PIXEL
STA CLRBYT TO SAME COLOR
LDA HCOR
AND #$01
TAX
LDA CMASK,X FIND OUT WHICH NIBBLE TO
AND CLRBYT STORE COLOR IN
STA CLRBYT
LDA SMASK,X
AND [SLOC] CLEAR PIXEL
ORA CLRBYT
STA [SLOC] STORE COLOR OF PIXEL
RTS
AFTER JSR INPOS
JSR CHECK
LDA HCOR+1
BNE NTUP
JMP AGAIN
NTUP LDA #20
STA PNT+1
LDA HCOR
CMP #24 MOVE TO NEXT LINE?
BPL NXLN
JMP AGAIN NO, PLOT ANOTHER PIXEL
NXLN BEQ SKDC DID LINE END EVENLY?
DEC PNT+1 NO, DON'T ADD TOO MUCH
SKDC STZ HCOR
STZ HCOR+1 CLEAR X-COOR
INC VCOR
LDA SLOC GET ADDRESS OF NEXT LINE
CLC
PNT ADC #20
STA SLOC
BCC CHCK
INC SLOC+1
CHCK LDA VCOR
CMP #192 BOTTOM OF SCREEN?
BEQ QUIT
JMP AGAIN NO, PLOT MORE
QUIT RTS
DCPOS DEC HCOR
LDA HCOR
CMP #$FF
BNE RTN
DEC HCOR+1
RTN RTS
INPOS INC HCOR
BNE RTN2
INC HCOR+1
RTN2 RTS
CHECK LDA HCOR
AND #$01
BEQ RTN3
INC SLOC
BNE RTN3
INC SLOC+1
RTN3 RTS
HSCRN LDA VCOR
LDX #0
LDY #0
JSR HPOSN
LDY #0
LDA HCOR
LDX HCOR+1
BEQ NTSET
LDY #$24
CLC
ADC #$04
NTSET CMP #$07
BCC DONE
SBC #$07
INY
BNE NTSET
DONE TAX
LDA (POS),Y
AND MASK,X
RTS
* LOOK-UP TABLES
MASK HEX 01020408102040
CLRTBL HEX FF0F0F0FF0000F00000F
SMASK HEX F00F
CMASK HEX 0FF0